#Boa:Frame:InventarioAjuste

import wx
import wx.grid
import consultasBD
import utiles
from decimal import Decimal

ROJO = (255, 145, 145, 255)
VERDE = (145, 255, 145, 255)
AZUL = (145, 145, 255, 255)
BLANCO = (255, 255, 255, 255)
AMARILLO = (254, 248, 191, 255)

def create(parent):
    return InventarioAjuste(parent)

[wxID_INVENTARIOAJUSTE, wxID_INVENTARIOAJUSTEBUTTON1, 
 wxID_INVENTARIOAJUSTEBUTTON2, wxID_INVENTARIOAJUSTEBUTTON3, 
 wxID_INVENTARIOAJUSTEBUTTON4, wxID_INVENTARIOAJUSTEBUTTON5, 
 wxID_INVENTARIOAJUSTEBUTTON6, wxID_INVENTARIOAJUSTECOMBOBOX1, 
 wxID_INVENTARIOAJUSTEGRID1, wxID_INVENTARIOAJUSTEGRID2, 
 wxID_INVENTARIOAJUSTEGRID3, wxID_INVENTARIOAJUSTEGRID4, 
 wxID_INVENTARIOAJUSTEPANEL1, wxID_INVENTARIOAJUSTERADIOBUTTON1, 
 wxID_INVENTARIOAJUSTERADIOBUTTON2, wxID_INVENTARIOAJUSTESTATICTEXT1, 
 wxID_INVENTARIOAJUSTESTATICTEXT10, wxID_INVENTARIOAJUSTESTATICTEXT11, 
 wxID_INVENTARIOAJUSTESTATICTEXT12, wxID_INVENTARIOAJUSTESTATICTEXT13, 
 wxID_INVENTARIOAJUSTESTATICTEXT14, wxID_INVENTARIOAJUSTESTATICTEXT15, 
 wxID_INVENTARIOAJUSTESTATICTEXT16, wxID_INVENTARIOAJUSTESTATICTEXT17, 
 wxID_INVENTARIOAJUSTESTATICTEXT18, wxID_INVENTARIOAJUSTESTATICTEXT19, 
 wxID_INVENTARIOAJUSTESTATICTEXT2, wxID_INVENTARIOAJUSTESTATICTEXT20, 
 wxID_INVENTARIOAJUSTESTATICTEXT21, wxID_INVENTARIOAJUSTESTATICTEXT22, 
 wxID_INVENTARIOAJUSTESTATICTEXT3, wxID_INVENTARIOAJUSTESTATICTEXT4, 
 wxID_INVENTARIOAJUSTESTATICTEXT5, wxID_INVENTARIOAJUSTESTATICTEXT6, 
 wxID_INVENTARIOAJUSTESTATICTEXT7, wxID_INVENTARIOAJUSTESTATICTEXT8, 
 wxID_INVENTARIOAJUSTESTATICTEXT9, wxID_INVENTARIOAJUSTETEXTCTRL1, 
 wxID_INVENTARIOAJUSTETEXTCTRL10, wxID_INVENTARIOAJUSTETEXTCTRL11, 
 wxID_INVENTARIOAJUSTETEXTCTRL12, wxID_INVENTARIOAJUSTETEXTCTRL13, 
 wxID_INVENTARIOAJUSTETEXTCTRL14, wxID_INVENTARIOAJUSTETEXTCTRL15, 
 wxID_INVENTARIOAJUSTETEXTCTRL16, wxID_INVENTARIOAJUSTETEXTCTRL2, 
 wxID_INVENTARIOAJUSTETEXTCTRL3, wxID_INVENTARIOAJUSTETEXTCTRL4, 
 wxID_INVENTARIOAJUSTETEXTCTRL5, wxID_INVENTARIOAJUSTETEXTCTRL6, 
 wxID_INVENTARIOAJUSTETEXTCTRL7, wxID_INVENTARIOAJUSTETEXTCTRL8, 
 wxID_INVENTARIOAJUSTETEXTCTRL9, wxID_INVENTARIOAJUSTETEXTO, 
] = [wx.NewId() for _init_ctrls in range(54)]

class InventarioAjuste(wx.Frame):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_INVENTARIOAJUSTE,
              name='InventarioAjuste', parent=prnt, pos=wx.Point(318, 139),
              size=wx.Size(865, 396), style=wx.DEFAULT_FRAME_STYLE,
              title='Inventario - AJUSTE')
        self.SetClientSize(wx.Size(857, 369))

        self.panel1 = wx.Panel(id=wxID_INVENTARIOAJUSTEPANEL1, name='panel1',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(857, 369),
              style=wx.TAB_TRAVERSAL)

        self.staticText1 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT1,
              label='P.T.C.', name='staticText1', parent=self.panel1,
              pos=wx.Point(16, 8), size=wx.Size(31, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL1,
              name='textCtrl1', parent=self.panel1, pos=wx.Point(16, 24),
              size=wx.Size(72, 21), style=0, value='')

        self.button1 = wx.Button(id=wxID_INVENTARIOAJUSTEBUTTON1,
              label='Buscar', name='button1', parent=self.panel1,
              pos=wx.Point(96, 24), size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnBuscar,
              id=wxID_INVENTARIOAJUSTEBUTTON1)

        self.staticText2 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT2,
              label='Descripcion', name='staticText2', parent=self.panel1,
              pos=wx.Point(184, 8), size=wx.Size(54, 13), style=0)

        self.textCtrl2 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL2,
              name='textCtrl2', parent=self.panel1, pos=wx.Point(184, 24),
              size=wx.Size(288, 21), style=0, value='')
        self.textCtrl2.SetEditable(False)

        self.staticText3 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT3,
              label='Proveedor', name='staticText3', parent=self.panel1,
              pos=wx.Point(184, 48), size=wx.Size(50, 13), style=0)

        self.textCtrl3 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL3,
              name='textCtrl3', parent=self.panel1, pos=wx.Point(184, 64),
              size=wx.Size(168, 21), style=0, value='')
        self.textCtrl3.SetEditable(False)

        self.staticText4 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT4,
              label='Estacion', name='staticText4', parent=self.panel1,
              pos=wx.Point(352, 48), size=wx.Size(40, 13), style=0)

        self.textCtrl4 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL4,
              name='textCtrl4', parent=self.panel1, pos=wx.Point(352, 64),
              size=wx.Size(80, 21), style=0, value='')
        self.textCtrl4.SetEditable(False)

        self.staticText5 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT5,
              label='Anio', name='staticText5', parent=self.panel1,
              pos=wx.Point(432, 48), size=wx.Size(21, 13), style=0)

        self.textCtrl5 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL5,
              name='textCtrl5', parent=self.panel1, pos=wx.Point(432, 64),
              size=wx.Size(40, 21), style=0, value='')
        self.textCtrl5.SetEditable(False)

        self.staticText6 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT6,
              label='Codigo Sussan', name='staticText6', parent=self.panel1,
              pos=wx.Point(184, 128), size=wx.Size(70, 13), style=0)

        self.textCtrl6 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL6,
              name='textCtrl6', parent=self.panel1, pos=wx.Point(184, 144),
              size=wx.Size(100, 21), style=0, value='')
        self.textCtrl6.SetEditable(False)

        self.staticText7 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT7,
              label='Talle', name='staticText7', parent=self.panel1,
              pos=wx.Point(296, 88), size=wx.Size(22, 13), style=0)

        self.textCtrl7 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL7,
              name='textCtrl7', parent=self.panel1, pos=wx.Point(296, 104),
              size=wx.Size(56, 21), style=0, value='')
        self.textCtrl7.SetEditable(False)

        self.staticText8 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT8,
              label='Color', name='staticText8', parent=self.panel1,
              pos=wx.Point(352, 88), size=wx.Size(25, 13), style=0)

        self.textCtrl8 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL8,
              name='textCtrl8', parent=self.panel1, pos=wx.Point(352, 104),
              size=wx.Size(120, 21), style=0, value='')
        self.textCtrl8.SetEditable(False)

        self.staticText9 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT9,
              label='Precio', name='staticText9', parent=self.panel1,
              pos=wx.Point(184, 168), size=wx.Size(29, 13), style=0)

        self.textCtrl9 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL9,
              name='textCtrl9', parent=self.panel1, pos=wx.Point(184, 184),
              size=wx.Size(56, 21), style=0, value='')
        self.textCtrl9.SetEditable(False)

        self.staticText10 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT10,
              label='Tipo de ajuste', name='staticText10', parent=self.panel1,
              pos=wx.Point(144, 280), size=wx.Size(68, 13), style=0)

        self.comboBox1 = wx.ComboBox(choices=[],
              id=wxID_INVENTARIOAJUSTECOMBOBOX1, name='comboBox1',
              parent=self.panel1, pos=wx.Point(8, 240), size=wx.Size(130, 21),
              style=0, value='')
        self.comboBox1.SetLabel('')

        self.staticText11 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT11,
              label='Cantidad', name='staticText11', parent=self.panel1,
              pos=wx.Point(144, 224), size=wx.Size(43, 13), style=0)

        self.textCtrl10 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL10,
              name='textCtrl10', parent=self.panel1, pos=wx.Point(144, 240),
              size=wx.Size(40, 21), style=0, value='')

        self.staticText12 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT12,
              label='Observaciones', name='staticText12', parent=self.panel1,
              pos=wx.Point(192, 224), size=wx.Size(71, 13), style=0)

        self.textCtrl11 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL11,
              name='textCtrl11', parent=self.panel1, pos=wx.Point(192, 240),
              size=wx.Size(272, 21), style=0, value='')

        self.staticText13 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT13,
              label='Casa Central Santa Fe', name='staticText13',
              parent=self.panel1, pos=wx.Point(480, 8), size=wx.Size(108, 13),
              style=0)

        self.button6 = wx.Button(id=wxID_INVENTARIOAJUSTEBUTTON6,
              label='Calcular', name='button6', parent=self.panel1,
              pos=wx.Point(8, 336), size=wx.Size(75, 23), style=0)
        self.button6.Bind(wx.EVT_BUTTON, self.OnCalcular,
              id=wxID_INVENTARIOAJUSTEBUTTON6)

        self.button2 = wx.Button(id=wxID_INVENTARIOAJUSTEBUTTON2,
              label='Aceptar', name='button2', parent=self.panel1,
              pos=wx.Point(96, 336), size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnAceptar,
              id=wxID_INVENTARIOAJUSTEBUTTON2)

        self.button3 = wx.Button(id=wxID_INVENTARIOAJUSTEBUTTON3,
              label='Limpiar', name='button3', parent=self.panel1,
              pos=wx.Point(184, 336), size=wx.Size(75, 23), style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnLimpiar,
              id=wxID_INVENTARIOAJUSTEBUTTON3)

        self.button4 = wx.Button(id=wxID_INVENTARIOAJUSTEBUTTON4, label='Salir',
              name='button4', parent=self.panel1, pos=wx.Point(384, 336),
              size=wx.Size(75, 23), style=0)
        self.button4.Bind(wx.EVT_BUTTON, self.OnSalir,
              id=wxID_INVENTARIOAJUSTEBUTTON4)

        self.staticText14 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT14,
              label='Grupo', name='staticText14', parent=self.panel1,
              pos=wx.Point(184, 88), size=wx.Size(29, 13), style=0)

        self.textCtrl12 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL12,
              name='textCtrl12', parent=self.panel1, pos=wx.Point(184, 104),
              size=wx.Size(112, 21), style=0, value='')
        self.textCtrl12.SetEditable(False)

        self.staticText15 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT15,
              label='Parana', name='staticText15', parent=self.panel1,
              pos=wx.Point(480, 88), size=wx.Size(34, 13), style=0)

        self.grid1 = wx.grid.Grid(id=wxID_INVENTARIOAJUSTEGRID1, name='grid1',
              parent=self.panel1, pos=wx.Point(480, 24), size=wx.Size(368, 64),
              style=0)
        self.grid1.Bind(wx.EVT_SET_FOCUS, self.OnFocus1)

        self.staticText16 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT16,
              label='Saska', name='staticText16', parent=self.panel1,
              pos=wx.Point(480, 168), size=wx.Size(28, 13), style=0)

        self.grid2 = wx.grid.Grid(id=wxID_INVENTARIOAJUSTEGRID2, name='grid2',
              parent=self.panel1, pos=wx.Point(480, 104), size=wx.Size(368, 64),
              style=0)
        self.grid2.Bind(wx.EVT_SET_FOCUS, self.OnFocus2)

        self.staticText17 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT17,
              label='Peatonal', name='staticText17', parent=self.panel1,
              pos=wx.Point(480, 248), size=wx.Size(42, 13), style=0)

        self.grid3 = wx.grid.Grid(id=wxID_INVENTARIOAJUSTEGRID3, name='grid3',
              parent=self.panel1, pos=wx.Point(480, 184), size=wx.Size(368, 64),
              style=0)
        self.grid3.Bind(wx.EVT_SET_FOCUS, self.OnFocus3)

        self.staticText18 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT18,
              label='Sucursal', name='staticText18', parent=self.panel1,
              pos=wx.Point(8, 224), size=wx.Size(40, 13), style=0)

        self.grid4 = wx.grid.Grid(id=wxID_INVENTARIOAJUSTEGRID4, name='grid4',
              parent=self.panel1, pos=wx.Point(480, 264), size=wx.Size(368, 64),
              style=0)
        self.grid4.Bind(wx.EVT_SET_FOCUS, self.OnFocus4)

        self.button5 = wx.Button(id=wxID_INVENTARIOAJUSTEBUTTON5,
              label='Historico', name='button5', parent=self.panel1,
              pos=wx.Point(96, 64), size=wx.Size(75, 23), style=0)
        self.button5.Enable(False)
        self.button5.Bind(wx.EVT_BUTTON, self.OnHistorico,
              id=wxID_INVENTARIOAJUSTEBUTTON5)

        self.texto = wx.StaticText(id=wxID_INVENTARIOAJUSTETEXTO, label='',
              name='texto', parent=self.panel1, pos=wx.Point(416, 296),
              size=wx.Size(56, 13), style=0)

        self.textCtrl13 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL13,
              name='textCtrl13', parent=self.panel1, pos=wx.Point(224, 296),
              size=wx.Size(56, 21), style=0, value='')
        self.textCtrl13.SetEditable(False)

        self.textCtrl14 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL14,
              name='textCtrl14', parent=self.panel1, pos=wx.Point(296, 296),
              size=wx.Size(56, 21), style=0, value='')
        self.textCtrl14.SetEditable(False)

        self.textCtrl15 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL15,
              name='textCtrl15', parent=self.panel1, pos=wx.Point(352, 296),
              size=wx.Size(56, 21), style=0, value='')
        self.textCtrl15.SetEditable(False)

        self.staticText19 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT19,
              label='Stock', name='staticText19', parent=self.panel1,
              pos=wx.Point(224, 280), size=wx.Size(26, 13), style=0)

        self.staticText20 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT20,
              label='Diferencia', name='staticText20', parent=self.panel1,
              pos=wx.Point(296, 280), size=wx.Size(48, 13), style=0)

        self.staticText21 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT21,
              label='Monto ($)', name='staticText21', parent=self.panel1,
              pos=wx.Point(352, 280), size=wx.Size(47, 13), style=0)

        self.textCtrl16 = wx.TextCtrl(id=wxID_INVENTARIOAJUSTETEXTCTRL16,
              name='textCtrl16', parent=self.panel1, pos=wx.Point(144, 296),
              size=wx.Size(80, 21), style=0, value='')
        self.textCtrl16.SetEditable(False)

        self.radioButton1 = wx.RadioButton(id=wxID_INVENTARIOAJUSTERADIOBUTTON1,
              label='stock en Sucursales', name='radioButton1',
              parent=self.panel1, pos=wx.Point(16, 104), size=wx.Size(120, 13),
              style=0)
        self.radioButton1.SetValue(False)

        self.radioButton2 = wx.RadioButton(id=wxID_INVENTARIOAJUSTERADIOBUTTON2,
              label='stock en Servidor', name='radioButton2',
              parent=self.panel1, pos=wx.Point(16, 120), size=wx.Size(104, 13),
              style=0)
        self.radioButton2.SetValue(True)

        self.staticText22 = wx.StaticText(id=wxID_INVENTARIOAJUSTESTATICTEXT22,
              label='(ultimo backup)', name='staticText22', parent=self.panel1,
              pos=wx.Point(32, 136), size=wx.Size(73, 13), style=0)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.inicializar()

    def OnFocus1(self, event):
        self.comboBox1.SetFocus()

    def OnFocus2(self, event):
        self.comboBox1.SetFocus()

    def OnFocus3(self, event):
        self.comboBox1.SetFocus()

    def OnFocus4(self, event):
        self.comboBox1.SetFocus()
        
    def crearGrilla1(self,resultadoSUC):
        columnas = len(resultadoSUC)
        self.grid1.CreateGrid(1,columnas)
        sucursales = []
        for i in xrange(columnas):
            cadena = resultadoSUC[i]['nombre']
            cadena = cadena.split()[0]+"\n"+cadena[cadena.find(" ")+1:]
            sucursales.append(cadena)
        for i in xrange(columnas):
            self.grid1.SetColLabelValue(i,sucursales[i])
            self.grid1.SetCellValue(0, i, "0")
            self.grid1.SetCellAlignment(0, i, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.AutoSizeColumn(i,True)
        return

    def crearGrilla2(self,resultadoSUC):
        columnas = len(resultadoSUC)
        self.grid2.CreateGrid(1,columnas)
        sucursales = []
        for i in xrange(columnas):
            cadena = resultadoSUC[i]['nombre']
            cadena = cadena.split()[0]+"\n"+cadena[cadena.find(" ")+1:]
            sucursales.append(cadena)
        for i in xrange(columnas):
            self.grid2.SetColLabelValue(i,sucursales[i])
            self.grid2.SetCellValue(0, i, "0")
            self.grid2.SetCellAlignment(0, i, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid2.AutoSizeColumn(i,True)
        return
        
    def crearGrilla3(self,resultadoSUC):
        columnas = len(resultadoSUC)
        self.grid3.CreateGrid(1,columnas)
        sucursales = []
        for i in xrange(columnas):
            cadena = resultadoSUC[i]['nombre']
            cadena = cadena.split()[0]+"\n"+cadena[cadena.find(" ")+1:]
            sucursales.append(cadena)
        for i in xrange(columnas):
            self.grid3.SetColLabelValue(i,sucursales[i])
            self.grid3.SetCellValue(0, i, "0")
            self.grid3.SetCellAlignment(0, i, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid3.AutoSizeColumn(i,True)
        return

    def crearGrilla4(self,resultadoSUC):
        columnas = len(resultadoSUC)
        self.grid4.CreateGrid(1,columnas)
        sucursales = []
        for i in xrange(columnas):
            cadena = resultadoSUC[i]['nombre']
            cadena = cadena.split()[0]+"\n"+cadena[cadena.find(" ")+1:]
            sucursales.append(cadena)
        for i in xrange(columnas):
            self.grid4.SetColLabelValue(i,sucursales[i])
            self.grid4.SetCellValue(0, i, "0")
            self.grid4.SetCellAlignment(0, i, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid4.AutoSizeColumn(i,True)
        return

    def inicializar(self):
        consultaSQL = "SELECT * FROM sucursales WHERE 1"
        resultadoSUC = consultasBD.ordenCrudaDict(consultaSQL)
        self.crearGrilla1(resultadoSUC)
        self.crearGrilla2(resultadoSUC)
        self.crearGrilla3(resultadoSUC)
        self.crearGrilla4(resultadoSUC)
        for item in resultadoSUC:
            self.comboBox1.Append(item["nombre"])

        self.textCtrl1.SetFocus()

    def OnSalir(self, event):
        self.Close()

    def buscarCodSussan(self,ptc=""):
        print "Buscando codsussan, talle y color.",
        if ptc=="":
            return "","",""
        consultaSQL = "SELECT codsussan,talle,color FROM producto_talle_color WHERE id='"+ptc+"'"
        resultados = consultasBD.ordenCrudaDict(consultaSQL)
        if resultados == () or resultados == None:
            return "","",""
        print
        return resultados[0]["codsussan"],resultados[0]["talle"],resultados[0]["color"]

    def buscarColor(self,color=""):
        print "Buscando nombre color.",
        if color=="":
            return color+" / "
        consultaSQL = "SELECT nombre FROM colores WHERE idcolor='"+color+"'"
        resultados = consultasBD.ordenCrudaDict(consultaSQL)
        if resultados == () or resultados == None:
            return color+" / "
        print
        return color+" / "+resultados[0]["nombre"]

    def buscarProveedor(self,idproveedor=""):
        print "Buscando nombre del proveedor.",
        if idproveedor=="":
            return ""
        consultaSQL = "SELECT nombre FROM proveedor WHERE idproveedor='"+idproveedor+"'"
        resultados = consultasBD.ordenCrudaDict(consultaSQL)
        if resultados == () or resultados == None:
            return ""
        print
        return resultados[0]["nombre"]

    def buscarProducto(self,codsussan=""):
        print "Buscando datos del Producto.",
        if codsussan=="": return ()
        consultaSQL = "SELECT * FROM productos WHERE codsussan='"+codsussan+"'"
        resultados = consultasBD.ordenCrudaDict(consultaSQL)
        if resultados == () or resultados == None:
            return ()
        print
        return resultados[0]

    def buscarGrupo(self,grupo=""):
        print "Buscando grupo."
        if grupo=="":
            return ""
        consultaSQL = "SELECT nombregrupo FROM grupos WHERE idgrupo='"+grupo+"'"
        resultados = consultasBD.ordenCrudaDict(consultaSQL)
        if resultados == () or resultados == None:
            return ""
        return grupo+" / "+resultados[0]["nombregrupo"]

    def OnLimpiar(self, event):
        self.textCtrl1.SetLabel("")
        self.textCtrl1.SetEditable(True)
        self.radioButton1.Enable(True)
        self.radioButton2.Enable(True)
        self.textCtrl2.SetLabel("")
        self.textCtrl3.SetLabel("")
        self.textCtrl4.SetLabel("")
        self.textCtrl5.SetLabel("")
        self.textCtrl6.SetLabel("")
        self.textCtrl7.SetLabel("")
        self.textCtrl8.SetLabel("")
        self.textCtrl9.SetLabel("")
        self.textCtrl10.SetLabel("")
        self.textCtrl11.SetLabel("")
        self.textCtrl12.SetLabel("")
        self.textCtrl13.SetLabel("")
        self.textCtrl14.SetLabel("")
        self.textCtrl15.SetLabel("")
        self.textCtrl16.SetLabel("")
        self.textCtrl16.SetBackgroundColour(BLANCO)
        self.texto.SetLabel("")
        self.grid1.ClearGrid()
        for col in xrange(self.grid1.GetNumberCols()):
            self.grid1.SetCellValue(0,col,"0")
        self.grid2.ClearGrid()
        for col in xrange(self.grid2.GetNumberCols()):
            self.grid2.SetCellValue(0,col,"0")
        self.grid3.ClearGrid()
        for col in xrange(self.grid3.GetNumberCols()):
            self.grid3.SetCellValue(0,col,"0")
        self.grid4.ClearGrid()
        for col in xrange(self.grid4.GetNumberCols()):
            self.grid4.SetCellValue(0,col,"0")
##        self.comboBox1.SetLabel("")
        self.button5.Enable(False)
        self.textCtrl1.SetFocus()

    def buscarStock(self,ptc,sucursal):
        print "Buscando Stock.",
        if ptc=="": return {}
        consultaSQL = "SELECT * FROM stock WHERE ptc='"+ptc+"'"
        if self.radioButton1.GetValue():
            resultados = consultasBD.ordenCrudaDictRemota(consultaSQL,sucursal)
        else:
            resultados = consultasBD.ordenCrudaDictRemota2(consultaSQL,sucursal)
        if resultados == () or resultados == None:
            return {}
        return resultados[0],resultados[1]

    def cargarStock(self,ptc):
        if ptc == "":
            utiles.mensaje(None,"Debe especificar PTC")
            return
        #central
        stock,conecta = self.buscarStock(ptc,0)
        if conecta:
            for item in stock:
                if item["sucursal"]=='1':
                    self.grid1.SetCellValue(0,0,str(item["stock"]))
                    continue
                if item["sucursal"]=='2':
                    self.grid1.SetCellValue(0,1,str(item["stock"]))
                    continue
                if item["sucursal"]=='3':
                    self.grid1.SetCellValue(0,2,str(item["stock"]))
                    continue
                if item["sucursal"]=='4':
                    self.grid1.SetCellValue(0,3,str(item["stock"]))
                    continue
        else:
            self.grid1.SetCellValue(0,0,"sin conexion")
            self.grid1.SetCellValue(0,1,"sin conexion")
            self.grid1.SetCellValue(0,2,"sin conexion")
            self.grid1.SetCellValue(0,3,"sin conexion")
        #parana
        stock,conecta = self.buscarStock(ptc,1)
        if conecta:
            for item in stock:
                if item["sucursal"]=='1':
                    self.grid2.SetCellValue(0,0,str(item["stock"]))
                    continue
                if item["sucursal"]=='2':
                    self.grid2.SetCellValue(0,1,str(item["stock"]))
                    continue
                if item["sucursal"]=='3':
                    self.grid2.SetCellValue(0,2,str(item["stock"]))
                    continue
                if item["sucursal"]=='4':
                    self.grid2.SetCellValue(0,3,str(item["stock"]))
                    continue
        else:
            self.grid2.SetCellValue(0,0,"sin conexion")
            self.grid2.SetCellValue(0,1,"sin conexion")
            self.grid2.SetCellValue(0,2,"sin conexion")
            self.grid2.SetCellValue(0,3,"sin conexion")
        #saska
        stock,conecta = self.buscarStock(ptc,2)
        if conecta:
            for item in stock:
                if item["sucursal"]=='1':
                    self.grid3.SetCellValue(0,0,str(item["stock"]))
                    continue
                if item["sucursal"]=='2':
                    self.grid3.SetCellValue(0,1,str(item["stock"]))
                    continue
                if item["sucursal"]=='3':
                    self.grid3.SetCellValue(0,2,str(item["stock"]))
                    continue
                if item["sucursal"]=='4':
                    self.grid3.SetCellValue(0,3,str(item["stock"]))
                    continue
        else:
            self.grid3.SetCellValue(0,0,"sin conexion")
            self.grid3.SetCellValue(0,1,"sin conexion")
            self.grid3.SetCellValue(0,2,"sin conexion")
            self.grid3.SetCellValue(0,3,"sin conexion")
        #peatonal
        stock,conecta = self.buscarStock(ptc,3)
        if conecta:
            for item in stock:
                if item["sucursal"]=='1':
                    self.grid4.SetCellValue(0,0,str(item["stock"]))
                    continue
                if item["sucursal"]=='2':
                    self.grid4.SetCellValue(0,1,str(item["stock"]))
                    continue
                if item["sucursal"]=='3':
                    self.grid4.SetCellValue(0,2,str(item["stock"]))
                    continue
                if item["sucursal"]=='4':
                    self.grid4.SetCellValue(0,3,str(item["stock"]))
                    continue
        else:
            self.grid4.SetCellValue(0,0,"sin conexion")
            self.grid4.SetCellValue(0,1,"sin conexion")
            self.grid4.SetCellValue(0,2,"sin conexion")
            self.grid4.SetCellValue(0,3,"sin conexion")

    def OnBuscar(self, event):
        if self.textCtrl1.GetLabel() == "":
            self.textCtrl1.SetFocus()
        print "BUSCANDO ",self.textCtrl1.GetLabel()
        ptc = self.textCtrl1.GetLabel()
        codsussan,talle,color = self.buscarCodSussan(ptc)
        if codsussan == "":
            utiles.mensaje(None,"PTC no existe")
            self.OnLimpiar(None)
            return
        producto = self.buscarProducto(codsussan)
        proveedor = self.buscarProveedor(producto["proveedor"])
        grupo = self.buscarGrupo(producto["grupo"])
        color = self.buscarColor(color)
        
        self.textCtrl2.SetLabel(producto["descri"])
        self.textCtrl3.SetLabel(proveedor+" / "+producto["proveedor"])
        self.textCtrl4.SetLabel(producto["estacion"])
        self.textCtrl5.SetLabel(producto["anio"])
        self.textCtrl6.SetLabel(codsussan)
        self.textCtrl7.SetLabel(talle)
        self.textCtrl8.SetLabel(color)
        self.textCtrl9.SetLabel(str(producto["preciolt1"]))
        self.textCtrl12.SetLabel(grupo)

        self.cargarStock(ptc)
        self.textCtrl1.SetEditable(False)
        self.radioButton1.Enable(False)
        self.radioButton2.Enable(False)
        self.button5.Enable(True)
        self.comboBox1.SetFocus()

    def verificar(self):
        if self.textCtrl1.GetLabel()=="":
            utiles.mensaje(None,"Falta el PTC")
            self.textCtrl1.SetFocus()
            return False
        if self.textCtrl6.GetLabel()=="":
            utiles.mensaje(None,"Falta el Codigo Sussan")
            self.textCtrl1.SetFocus()
            return False
        if self.comboBox1.GetLabel()=="":
            utiles.mensaje(None,"Debe seleccionar sucursal donde\naplicar el ajuste")
            self.comboBox1.SetFocus()
            return False
        if self.textCtrl16.GetLabel()=="":
            #utiles.mensaje(None,"Debe elegir Tipo de Operacion")
            #self.choice1.SetFocus()
            self.button6.SetFocus()
            return False
        if self.textCtrl10.GetLabel()=="":
            utiles.mensaje(None,"Debe introducir cantidad")
            self.textCtrl10.SetFocus()
            return False
        if self.textCtrl11.GetLabel()=="":
            utiles.mensaje(None,"Debe introducir una observacion")
            self.textCtrl11.SetFocus()
            return False
        try:
            cantidad = int(self.textCtrl10.GetLabel())
        except:
            utiles.mensaje(None,"Debe introducir un numero entero")
            self.textCtrl11.SetFocus("")
            self.textCtrl11.SetFocus()
            return False
        return True

    def OnAceptar(self, event):
        if not self.verificar():
            return
        #grabar en archivo
        nombresucursal = self.comboBox1.GetLabel()
        sucursal = str(self.comboBox1.GetSelection()+1)
        ptc = str(self.textCtrl1.GetLabel())
        codsussan = str(self.textCtrl6.GetLabel())
        self.OnCalcular(None)
        diferencia = self.textCtrl14.GetLabel()
        if self.textCtrl16.GetLabel()=="positivo":
            tipooperacion = "0"
        else:
            tipooperacion = "1"
        cantidad = self.textCtrl10.GetLabel()
        observaciones = self.textCtrl11.GetLabel()
        descripcion = self.textCtrl2.GetLabel()[:20]
        proveedor = self.textCtrl3.GetLabel()[:20]
        estacion = self.textCtrl4.GetLabel()+"/"+self.textCtrl5.GetLabel()
        grupo = self.textCtrl12.GetLabel()[:20]
        talle = self.textCtrl7.GetLabel()
        color = self.textCtrl8.GetLabel()[:15]
        precio = self.textCtrl9.GetLabel()
        fecha = utiles.obtenerFecha("Y-m-d")

        r1 = "ajustes(sucursal,ptc,codsussan,tipooperacion,cantidad,"
        r2 = "observaciones,descripcion,proveedor,estacion,grupo,talle,"
        r3 = "color,precio,fecha,diferencia)"
        tablaSQL = r1+r2+r3
        r1 = "('"+sucursal+"','"+ptc+"','"+codsussan+"','"+tipooperacion
        r2 = "','"+cantidad+"','"+observaciones+"','"+descripcion
        r3 = "','"+proveedor+"','"+estacion+"','"+grupo+"','"+talle
        r4 = "','"+color+"','"+precio+"','"+fecha+"','"+diferencia+"')"
        camposSQL = r1+r2+r3+r4
        id = consultasBD.executaInsertSQL(None,tablaSQL,camposSQL)
        print "Grabado",id,ptc,self.textCtrl2.GetLabel()

        self.OnLimpiar(None)

    def OnHistorico(self, event):
        import HistoricoProducto
        appBack = HistoricoProducto.create(None,self.textCtrl1.GetLabel())
        appBack.Show()
        return

    def OnChoice(self, event):
        if self.choice1.GetLabel()=="calcular":
            self.OnCalcular(None)

    def OnCalcular(self, event):
        if self.comboBox1.GetLabel()=="":
            self.comboBox1.SetFocus()
            return 0
        if self.textCtrl10.GetLabel()=="":
            self.textCtrl10.SetFocus()
            return 0
        try:
            cantidad = Decimal(self.textCtrl10.GetLabel())
        except:
            self.textCtrl10.SetLabel("")
            self.textCtrl10.SetFocus()
            return 0

        sucursal = self.comboBox1.GetSelection()+1
        mistock = {}
        if sucursal==1:
            for col in xrange(self.grid1.GetNumberCols()):
                mistock[col+1]=self.grid1.GetCellValue(0,col)
        elif sucursal==2:
            for col in xrange(self.grid2.GetNumberCols()):
                mistock[col+1]=self.grid2.GetCellValue(0,col)
        elif sucursal==3:
            for col in xrange(self.grid3.GetNumberCols()):
                mistock[col+1]=self.grid3.GetCellValue(0,col)
        else:
            for col in xrange(self.grid4.GetNumberCols()):
                mistock[col+1]=self.grid4.GetCellValue(0,col)

        self.textCtrl13.SetLabel(mistock[sucursal])
        stock = Decimal(self.textCtrl13.GetLabel())
        contado = Decimal(self.textCtrl10.GetLabel())
        diferencia = contado - stock 
        self.textCtrl14.SetLabel(str(diferencia))
        precio = Decimal(self.textCtrl9.GetLabel())
        monto = Decimal(self.textCtrl14.GetLabel())*precio
        self.textCtrl15.SetLabel(str(abs(monto.quantize(Decimal("0.00")))))
        if diferencia<Decimal("0.00"):
            self.texto.SetLabel("")
            self.textCtrl16.SetLabel("negativo")
            self.textCtrl16.SetBackgroundColour(ROJO)
            self.button2.SetFocus()
        else:
            self.texto.SetLabel("")
            self.textCtrl16.SetLabel("positivo")
            self.textCtrl16.SetBackgroundColour(VERDE)
            self.button2.SetFocus()

        return diferencia

